package main

import "net/http"

//Interface 合理性验证
/*
在编译时验证接口的符合性。这包括：

将实现特定接口的导出类型作为接口API 的一部分进行检查
实现同一接口的(导出和非导出)类型属于实现类型的集合
任何违反接口合理性检查的场景,都会终止编译,并通知给用户

补充:上面3条是编译器对接口的检查机制, 大体意思是错误使用接口会在编译期报错. 所以可以利用这个机制让部分问题在编译期暴露.
*/

//定义一个Handler结构体，实现http.Handler接口
type Handler struct {
}

// 如果Handler没有实现http.Handler的ServeHTTP方法,该行语句会在编译时直接报错，可以起到一个检查效果
var _ http.Handler = (*Handler)(nil)

//实现接口的方法
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {

}

func main_u2() {

}
